home *** CD-ROM | disk | FTP | other *** search
/ Practical Algorithms for Image Analysis / Practical Algorithms for Image Analysis.iso / TARFILE.GZ / tarfile / util / linux / tofrodos-1.1 / utility.c < prev    next >
C/C++ Source or Header  |  1999-09-11  |  1KB  |  70 lines

  1. /*
  2.     utility.c    Utility functions.
  3.     Copyright (c) 1996 by Christopher S L Heng. All rights reserved.
  4.  
  5.     $Id: utility.c 1.1 1996/05/17 21:47:29 chris Exp $
  6. */
  7.  
  8. /* this should always be first */
  9. #include "config.h"
  10.  
  11. /* standard headers */
  12. #include <stdio.h>    /* fputs() */
  13. #include <string.h>    /* strdup() */
  14. #include <stdlib.h>    /* malloc() */
  15.  
  16. /* our headers */
  17. #include "emsg.h"
  18. #include "tofrodos.h"
  19. #include "utility.h"
  20.  
  21. /*
  22.     errnomem
  23.  
  24.     Display error message about being out of memory, and exits.
  25.     It never returns.
  26.  
  27.     WARNING: It must never return. All code assumes it does not
  28.     return. Also in Watcom, we define it as a function which does
  29.     not return (see utility.h) so that the optimiser can jump to
  30.     this function (instead of calling it).
  31. */
  32. void errnomem ( int exitcode )
  33. {
  34.     fprintf( stderr, EMSG_NOMEM, progname );
  35.     exit( exitcode );
  36. }
  37.  
  38. /*
  39.     xmalloc
  40.  
  41.     Does the same thing as malloc() except that it never returns
  42.     a NULL pointer. It aborts with an error message on running
  43.     out of memory.
  44. */
  45. void * xmalloc ( size_t len )
  46. {
  47.     void * ptr ;
  48.  
  49.     if ((ptr = malloc( len )) == NULL)
  50.         errnomem( EXIT_ERROR );
  51.     return ptr ;
  52. }
  53.  
  54. /*
  55.     xstrdup
  56.  
  57.     Same as strdup(). Only, it never returns a NULL pointer.
  58.     If memory could not be allocated, it exits with an error
  59.     message.
  60. */
  61. char * xstrdup ( const char * s )
  62. {
  63.     char * t ;
  64.  
  65.     if ((t = strdup( s )) == NULL)
  66.         errnomem( EXIT_ERROR );
  67.     return t ;
  68. }
  69.  
  70.